package com.ck.dao;

import com.ck.model.common.SceneBottom;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 场景下
 *
 * @author linqiang
 * @date 2018-07-02 09:40
 */
public interface SceneBottomMapper {

    /**
     * 根据主键删除场景下
     *
     * @param sceneId 场景下主键
     * @return 影响行数
     */
    int deleteByPrimaryKey(Long sceneId);

    /**
     * 新增场景下
     *
     * @param record 新增的场景下
     * @return 影响行数
     */
    int insert(SceneBottom record);

    /**
     * 新增场景下（字段值不为空的）
     *
     * @param record 新增的场景下
     * @return 影响行数
     */
    int insertSelective(SceneBottom record);

    /**
     * 根据主键查询单个场景下
     *
     * @param sceneId 场主键
     * @return 场景下
     */
    SceneBottom selectByPrimaryKey(Long sceneId);

    /**
     * 根据主键个更新场景下（不为空的字段）
     *
     * @param record 更新的场景下
     * @return 影响行数
     */
    int updateByPrimaryKeySelective(SceneBottom record);

    /**
     * 根据主键更新场景下
     *
     * @param record 更新的场景下
     * @return 影响行数
     */
    int updateByPrimaryKey(SceneBottom record);


    /**
     * 根据场景版本号删除场景下
     *
     * @param sceneVersion 场景版本号
     * @return 影响行数
     */
    int deleteBySceneVersion(String sceneVersion);

    /**
     * 批量插入
     *
     * @param sceneBottomList 数据集合
     * @return 影响行数
     */
    int batchInsert(@Param("sceneBottomList") List<SceneBottom> sceneBottomList);

    /**
     * 根据节目版本号批量删除场景上
     *
     * @param programVersion 节目版本号
     * @return 影响行数
     */
    int batchDeleteByProgramVersion(@Param("programVersion") String programVersion);

    /**
     * 根据场景版本号查询场景下集合
     *
     * @param sceneVersion 场景版本号
     * @return List<SceneBottom>
     */
    List<SceneBottom> listBySceneVersion(String sceneVersion);

    /**
     * 根据url统计数量
     *
     * @param url              路径
     * @param sceneVersionList 场景版本号集合
     * @return 统计数量
     */
    int countByUrlAndSceneVersion(@Param("url") String url, @Param("sceneVersionList") List<String> sceneVersionList);
}